package ua.amsoft.brelok.dao;

import android.content.ContentValues;

/**
 * @author Tair Mustafaiev
 * @param <DTO>
 */
public interface IBaseDAO<DTO> {
    
    /**
     * Inserts values into Database
     * 
     * @param values - values to be inserted
     */
    void insert(ContentValues values);
    
    /**
     * Returns cursor of objects from database
     * 
     * @return DTO
     */
    DTO get();
    
    /**
     * Updates an passed object table in database
     * 
     * @param values - {@link ContentValues} values to be inserted
     * @param whereClause - query's where clause
     * @param whereArgs - query's where arguments
     */
    void update(ContentValues values, String whereClause, String[] whereArgs);
    
    /**
     * Removes all objects from table from database
     */
    void deleteAll();
    
}
